Method and system for providing page visibility information

ABSTRACT

A method and system for providing page visibility information are provided herein. Aspects of this disclosure provide an interface by which a browser may make the visibility state of a particular page available to the page itself. The browser may track the visibility state of the page as it changes and store the state in a variable associated with the page. Code executing within the page may query this variable to determine the visibility state and take appropriate action. The browser may provide an application programming interface (API) to allow the page to request the visibility state.

BACKGROUND

As more and more users have access to high-speed Internet, websitedevelopers have been free to add increased interactivity to their works.Today, it is common for web pages to have a variety of elements thatenhance the browsing experience, including complex interface controls,multimedia elements, website analytic capturing tools, and more.Advances in browser technology have also resulted in the ability torender multiple web pages using a single application. For example, auser may have multiple browser tabs to allow for simultaneous browsing.

In the current environment, interactive page elements may execute assoon as the page is rendered, even if the page is not visible to theuser. Sites that feature embedded audio or video may begin to play assoon as the page is loaded. Pages that host games that include timersmay continue to run these timers even when the user is unable tointeract with the host page. Web sites that use polling to fetch dynamiccontent continue to poll whether or not the user is viewing the page.

BRIEF SUMMARY

A method and system for providing page visibility information areprovided herein. Aspects of this disclosure provide an interface bywhich a browser may make the visibility state of a particular pageavailable to the page itself. The browser may track the visibility stateof the page as it changes and store the state in a variable associatedwith the page. Code executing within the page may query this variable todetermine the visibility state and take appropriate action. The browsermay provide an application programming interface (API) to allow the pageto request the visibility state.

Aspects of the disclosure describe a computer-implemented method fordetermining the visibility status of a set of network content. Themethod may include accessing the network content using a processor,loading the set of network content in a browser, monitoring one or moreinterface features of the browser to determine a visibility state of thedocument within the browser, and providing the visibility state of thenetwork content to the network content such that the executableinstructions take into account the visibility state during execution.The network content may include instructions for performing at least onefunction. The visibility state may include one or more values thatindicate whether the network content is visible to the user. The methodmay further include monitoring the one or more interface features toidentify a change in visibility state based on a change in the one ormore interface features, and sending a notification to the networkcontent that the visibility state has changed. The notification mayinclude at least one of a new visibility state and a visibility statetransitional pair. The method may also include storing the visibilitystate in a document object model associated with the network content.The visibility state may be at least one of visible, hidden, prerender,cache, and preview. The visibility state may be provided to the set ofnetwork content in response to a request from the network content forthe visibility state. The visibility state may be provided to the set ofnetwork content via an application programming interface. The one ormore features may be at least one of a window focus, an active browsertab, an inactive browser tab, a browser history, a prerender status,whether a first window is minimized, whether the first window ispartially obscured by a second window, whether the first window is fullyobscured by the second window, whether a display device is turned off,and whether a screen saver is active on the display device.

Aspects of the disclosure may also provide a non-transitorycomputer-readable storage medium containing instructions that, whenexecuted by a processor, cause the processor to perform a method. Themethod may include accessing the network content, loading the set ofnetwork content in a browser, monitoring one or more interface featuresof the browser to determine a visibility state of the document withinthe browser, and providing the visibility state of the network contentto the network content such that the executable instructions take intoaccount the visibility state during execution. The network content mayinclude executable instructions for performing at least one function.The visibility state may include one or more values that indicatewhether the network content is visible to the user. The method mayfurther include monitoring the one or more interface features toidentify a change in visibility state based on a change in the one ormore interface features, and sending a notification to the networkcontent that the visibility state has changed. The notification mayinclude at least one of a new visibility state and a visibility statetransitional pair. The method may include storing the visibility statein a document object model associated with the network content. Thevisibility state may be at least one of visible, hidden, prerender,cache, and preview. The visibility state may be provided to the set ofnetwork content in response to a request from the network content forthe visibility state. The visibility state may be provided to the set ofnetwork content via an application programming interface. The one ormore features may be at least one of a window focus, an active browsertab, an inactive browser tab, a browser history, a prerender status,whether a first window is minimized, whether the first window ispartially obscured by a second window, whether the first window is fullyobscured by the second window, whether a display device is turned off,and whether a screen saver is active on the display device.

Aspects of the disclosure also provide a processing system fordetermining the visibility status of a set of network content. Theprocessing system may include at least one processor. The at least oneprocessor may be configured to access network content using a processor.The network content may include executable instructions for performingat least one function. The processor may be further configured to loadthe set of network content in a browser, to monitor one or moreinterface features of the browser to determine a visibility state of thedocument within the browser, and to provide the visibility state of thenetwork content to the network content such that the executableinstructions take into account the visibility state during execution.The visibility state may include one or more values that indicatewhether the network content is visible to the user. The processor may befurther configured to monitor the one or more interface features toidentify a change in visibility state based on a change in the one ormore interface features, and to send a notification to the networkcontent that the visibility state has changed. The notification mayinclude at least one of a new visibility state and a visibility statetransitional pair. The processor may be further configured to store thevisibility state in a document object model associated with the networkcontent. The visibility state may be at least one of visible, hidden,prerender, cache, and preview. The visibility state may be provided tothe set of network content in response to a request from the networkcontent for the visibility state. The visibility state may be providedto the set of network content via an application programming interface.The one or more features may be at least one of a window focus, anactive browser tab, an inactive browser tab, a browser history, aprerender status, whether a first window is minimized, whether the firstwindow is partially obscured by a second window, whether the firstwindow is fully obscured by the second window, whether a display deviceis turned off, and whether a screen saver is active on the displaydevice.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a system diagram depicting an example of a network including aclient and server in accordance with aspects of the disclosure.

FIG. 2 is block diagram depicting an example of a page visibility statechange event in accordance with aspects of the disclosure.

FIG. 3 is a flow diagram depicting an example of a method for monitoringa visibility state of a web page using a web browser in accordance withaspects of the disclosure.

FIG. 4 is a flow diagram depicting an example of a method for utilizinga page visibility state in a script executing in a web page inaccordance with aspects of the disclosure.

DETAILED DESCRIPTION

A method and system for providing page visibility information aredescribed. Aspects of this disclosure provide an interface by which aweb page may query a web browser for the current visibility state of thepage. The term “visibility state” is broadly understood to refer to thestatus of the web page within the browser and the accessibilityrelationship between the page and the user. By querying the visibilitystate, code executing within the web page may determine whether the pageis rendered in an active browser tab, rendered in a background browsertab, cached in a browser history, prerendered in a hidden browserenvironment, displayed in a reduced resolution preview, or any othervisibility state. The interface may also provide alerts to codeexecuting within the web page in response to changes in the visibilitystate, such as when a user changes the active browser tab.

FIG. 1 is a system diagram depicting an example of a network system 100including a client 102 and a server 104 in accordance with aspects ofthe disclosure. As shown in FIG. 1, an example network system 100includes the client 102 and the server 104 in communication via anetwork 132. The client 102 may execute a browser 114 to retrieve a setof network content, such as a visibility-enabled web page 116 hosted bythe server 104. Although examples described herein relate to the use ofa visibility-enhanced web page, the same techniques may apply to anynetwork content that is capable of accessing a visibility applicationprogramming interface (API) to determine a page state. Thevisibility-enabled web page 116 may include code that is responsive tothe visibility state of the web page as identified using a visibilityAPI 118 provided by the browser 114.

The client 102 may include a processor 106, a memory 108 and othercomponents typically present in general purpose computers. The memory108 may store instructions 110 and data 112 that are accessible by theprocessor 106. The processor 106 may execute the instructions 110 andaccess the data 112 to control the operations of the client 102.

The processor 106 may be any suitable processor, such as variouscommercially available general purpose processors. Alternatively, theprocessor 106 may be a dedicated controller such as anapplication-specific integrated circuit (“ASIC”) or a field-programmablegate array (“FPGA”).

The memory 108 may be any type of tangible memory operative to storeinformation accessible by the processor 106, including acomputer-readable medium, or other medium that stores data that may beread with the aid of an electronic device, such as a hard-drive, memorycard, read-only memory (“ROM”), random access memory (“RAM”), digitalversatile disc (“DVD”) or other optical disks, as well as otherwrite-capable and read-only memories. The system and method may includedifferent combinations of the foregoing, whereby different portions ofthe instructions and data are stored on different types of media.

Although FIG. 1 functionally illustrates the processor 106 and memory108 as each being within a single block respectively, it should beunderstood that the processor 106 and memory 108 may actually comprisemultiple processors and memories that may or may not be stored withinthe same physical housing. Accordingly, references to a processor,computer or memory will be understood to include references to acollection of processors, computers or memories that may or may notoperate in parallel.

The instructions 110 may be any set of instructions to be executeddirectly (such as machine code) or indirectly (such as scripts) by theprocessor 106. For example, the instructions 110 may be stored ascomputer code on a non-transitory computer-readable medium. In thatregard, the terms “instructions” and “programs” may be usedinterchangeably herein. The instructions 110 may be stored in objectcode format for direct processing by the processor 106, or in any othercomputer language including scripts or collections of independent sourcecode modules that are interpreted on demand or compiled in advance.Functions, methods and routines of the instructions are explained inmore detail below (see FIGS. 2-4).

In order to facilitate the operations of the client 102, theinstructions 110 may comprise a browser 114. The browser 114 may providean interface for viewing and interacting with network content. Inparticular, the browser 114 may provide for the rendering of networkcontent, such as the visibility-enhanced web page 116. The browser 114may display network content according to a variety of formats, includingbut not limited to text files, hyper-text markup language (HTML)documents, multimedia content such as WAV and MP3 files, images such asJPEG, BMP, and GIF files, extensible markup language (XML) files,spreadsheets, or any other kinds of data formats.

The browser 114 may also provide a visibility API 118 for providingvisibility state information to the visibility-enhanced web page 116.The visibility API 118 may monitor the visibility state of one or moreof the pages accessed by the web browser. As the one or more pages areactive, background rendered, cached, previewed, etc., the visibility API118 may alter the visibility state for the page in accordance with theupdated states.

Although the present examples describe the visibility state asassociated with a particular state variable maintained by the browser,the visibility state may also be dynamically queried and/or generatedbased on a request from a visibility-enhanced web page. In other words,the visibility API 118 may track the visibility state, or the state maybe determined on-demand. For example, the state variable may bemaintained within a document object model associated with thevisibility-enhanced web page 116. Code associated with thevisibility-enhanced web page 116 may execute to query the statevariable, such as by accessing a document property (e.g.,document.visibilityState), or calling an API function, which returns astring value corresponding to the particular visibility state. Thevisibility API 118 may interface with one or more scripts or executablecode associated with the web page, such as via JAVASCRIPT, ADOBE FLASH,or any other programming language.

The data 112 may be retrieved, stored or modified by the processor 106in accordance with the instructions 110. For instance, although thearchitecture is not limited by any particular data structure, the datamay be stored in computer registers, in a relational database as a tablehaving a plurality of different fields and records, Extensible MarkupLanguage (“XML”) documents or flat files. The data may also be formattedin any computer readable format such as, but not limited to, binaryvalues or Unicode. The data may comprise any information sufficient toidentify the relevant information, such as numbers, descriptive text,proprietary codes, references to data stored in other areas of the samememory or different memories (including other network locations) orinformation that is used by a function to calculate the relevant data.

Although a number of discrete modules and data sets (e.g., 114, 116) areidentified in connection with the client 102, the functionality of thesemodules and data may overlap and/or exist in a fewer or greater numberof modules than what is shown, with such modules residing at one or moreprocessing devices, which may be geographically dispersed. The data 112may include the visibility-enhanced web page 116 as described above. Thevisibility-enhanced web page 116 may include one or more code elementsthat execute based on the visibility state of the visibility-enhancedweb page 116. For example, the visibility-enhanced web page 116 mayinclude code that pauses multimedia content when the visibility-enhancedweb page 116 is not visible to the user. Further examples of operationsthat may be performed by the visibility-enhanced web page 116 aredescribed below (see FIG. 4).

The client 102 may be at one node of network 132, such as the Internet,and be operative to directly and indirectly communicates with othernodes of the network. For example, the client 102 may comprise a networkclient that is operative to communicate with the server 104 via thenetwork 132 such that the client 102 receives the visibility-enhancedweb page 116 from the server 104. The visibility-enhanced web page 114may include code that transmits data to or from the server in responseto the visibility state of the visibility-enhanced web page 116. Forexample, the visibility-enhanced web page 116 may notify the server 104when the visibility-enhanced web page 116 becomes visible to ensure theserver 104 maintains accurate website analytics for thevisibility-enhanced web page 116.

The server 104 may comprise a personal computer, a personal digitalassistants (“PDA”), a tablet PC, a netbook, a rack mounted server, alaptop, a mobile phone, a smart phone etc. Indeed, the server 104 inaccordance with the systems and methods described herein may compriseany device operative to process instructions and transmit data to andfrom humans and/or other computers including general purpose computers,network computers lacking local storage capability, etc.

The server 104 may be similarly configured to the client 102 asdescribed above. For example, the server 104 may comprise a processor120 coupled to a memory 122. As described above with respect to thememory 108, the memory 122 may include instructions 124 and data 126.The instructions 124 may include a hosting application 128.

The hosting application 128 operates to provide the visibility-enhancedweb page 116 to the client 102. The hosting application 128 may also beoperative to receive signals from the visibility-enhanced web page 116,such as a notification that the content of the visibility-enhanced webpage 116 has been viewed.

The network 132, and the intervening nodes between the client 102 andthe server 104 may comprise various configurations and use variousprotocols including the Internet, World Wide Web, intranets, virtualprivate networks, local Ethernet networks, private networks usingcommunication protocols proprietary to one or more companies, cellularand wireless networks (e.g., Wi-Fi), instant messaging, hypertexttransfer protocol (“HTTP”) and simple mail transfer protocol (“SMTP”),and various combinations of the foregoing. It should be appreciated thata typical system may include a large number of connected computers.

Although certain advantages are obtained when information is transmittedor received as noted above, other aspects of the system and method arenot limited to any particular manner of transmission of information. Forexample, in some aspects, information may be sent via a medium such asan optical disk or portable drive. In other aspects, the information maybe transmitted in a non-electronic format and manually entered into thesystem.

FIG. 2 is block diagram depicting an example of a page visibility statechange event in accordance with aspects of the disclosure. One exampleof a page visibility state change event involves changing the activebrowser tab. A common feature for modern web browsers is the ability torender multiple pages at once, and to allow the user to select betweenthe rendered pages. One way of implementing this functionality is toinclude multiple “tabs” that operate as interface controls for switchingbetween active rendered pages. When the user selects the tabcorresponding to the page, the page is displayed in the main browserwindow. These tabs may be persistent such that multiple tabs areselectable at any given time, regardless of the displayed page. Avisibility state change may occur when the user selects a new tab.

The present example describes a first browser state 202 and a secondbrowser state 204. The first browser state 202 depicts a web browserwith two tabs, tab one 206 and tab two 208. In the first browser state,tab one 206 is the active browser tab, with the associated contentdisplayed in the main browser window. Tab two 208 is an inactive tab,with the associated content hidden from the user. The correspondingvisibility states for these tabs are displayed in block 214, with tabone having the visibility state of visible, and tab two having thevisibility state of hidden. Tab two 208 may be selected using a cursor209.

Upon selection of tab two 208, the content associated with tab one 206is hidden and the content associated with tab two 208 is displayed inthe main browser window. This change in visibility state may result in avisibility change event, as described in block 216. The visibilitychange event may be used to notify code executing in one or more sets ofcontent that the visibility state of that content has changed. In thepresent example, the visibility event may notify tab one that tab one'svisibility state has changed from visible to hidden, and tab two thattab two's visibility state has changed from hidden to visible. The APImay allow for each page to separately register for visibility changeevents and/or register for events associated with a particular status orstatus change. The visibility state events may indicate both the startand finish status of a given state change, or only the finish status.

The second browser state 204 depicts the browser after tab two has beenmade active. As with the first browser state, the second browser state204 depicts tab one 210 and tab two 212, but tab two 212 is now activeand the associated content displayed in the main browser window. Block218 describes the visibility state of each tab, which is now the inverseof the states described in block 214.

FIG. 3 is a flow diagram depicting an example of a method 300 formonitoring a visibility state of a web page using a web browser inaccordance with aspects of the disclosure. As described above, asnetwork content is received and rendered by a browser, the browser mayidentify and/or track the visibility state of the content. The browsermay provide this visibility state upon request to the network contentand/or generate a visibility change event to report the state change tothe network content. In this manner the network content may takeappropriate action based on the visibility state of the page (see FIG.4).

At action 302, the browser receives a set of network content, such asthe visibility-enhanced web page 116 received from the server 104 (seeFIG. 1). Although a visibility-enhanced web page 116 is used in thepresent example, any sort of network content that can be displayed in abrowser could be used, as the network content does not necessarily needto include visibility-enhanced features. For example, the browser mayproactively take action on the network content based on the visibilitystate even if the network content does not explicitly include code to doso, such as pausing multimedia presentations when the page is notvisible to the user.

At action 304, the network content may be registered for visibilitystate change events. For example, the network content may wish toexecute particular code in response to a particular visibility statechange. The method 400 may provide the network content the ability toregister for visibility change events generated by the browser when thevisibility state change occurs. As described above, the visibilitychange events may include a notification of the state transition (e.g.,a previous state and an updated state), or just an updated state (seeFIG. 2).

At action 306, a default visibility state variable is set for thenetwork content. The default visibility state may set based on the wayin which the network content was accessed. For example, if the usertyped the content address into an address bar and the content wasimmediately rendered, the default state may be identified as “visible.”If the content was prerendered in response to a predicted usernavigation event, the default state may be identified as “prerender.” Ifthe content was accessed in response to opening a new background browsertab, then the default visibility state may be identified as “hidden.” Ifthe content is previewed in a lower resolution thumbnail, the defaultvisibility state may be identified as “preview.” In some aspects, thevisibility state variable may be associated with a document object modelof the network content.

At action 308, the browser monitors for changes to the contentvisibility state. As described above, visibility state changes mayinclude, but are not limited to, changing the active browser tab,prerendering of network content, caching network content (e.g.,navigating to a new link and storing a cached version of the networkcontent in the “back-forward” cache), minimizing the active browserwindow, previewing of network content, etc. The visibility state may bemonitored by a variety of actions, including interface and callbackhooks or other monitoring of user input actions. For example, the state“visible” may be triggered when the network content is rendered in theactive browser window, and the active browser window is not minimized.The state “hidden” may be triggered when the network content isdisplayed in an inactive tab or the containing window is minimized.Aspects of the disclosure may include a framework for defining differentvisibility states based on various interface features. Interface statesmay be determined in a variety of manners, including but not limited todetermining whether the network content is present in a window that hasfocus, determining whether the network content is present in an activebrowser tab, determining whether the network content is present in aninactive browser tab, determining whether the network content is presentin a browser history, determining whether the network content isprerendered, determining whether the window with the network content isminimized, determining whether network content is present in a windowthat is fully or partially obscured by another window, determiningwhether a display device attached to the computer executing the browseris turned off, or determining whether screen saver is active on thedisplay device.

At action 310, the browser identifies whether a visibility state changehas occurred based on the monitoring action 308. If no visibility statechange has occurred, the monitoring action 308 may continue until such astate change occurs or the browser is closed. If a visibility statechange occurs, the variable associated with the visibility state of thenetwork content is updated at action 312.

At action 312, the visibility state variable is updated depending uponthe visibility state change that has occurred. In response to a changein the visibility state variable, a visibility change event may be sentto content that is registered for such an event at action 314. Themethod may end after firing the visibility change event, or it mayreturn to action 308 to monitor for further state changes.

FIG. 4 is a flow diagram depicting an example of a method 400 forutilizing a content visibility state in a script executing in a web pagein accordance with aspects of the disclosure. The method is operable totake various actions based on the visibility state of the networkcontent as received from a browser including a visibility API inaccordance with aspects of the disclosure. The network content may thustake appropriate action based on the visibility state that may includeoptimization of the user browsing experience, relaying website analyticsdata, conserving network bandwidth, or otherwise optimizing interactionwith the network content based on the content's visibility status.

At action 402, a set of network content is rendered within a browser anddefault processing for the content is enabled. The network content mayinclude executable code, scripted code, or any other data that mayenable the rendered instance of the network content to communicate withthe browser. For example, default processing actions may includebeginning to buffer a video, requesting one or more resources from aserver, displaying a user interface for an application, etc.

At action 404, the network content queries the visibility state of thecontent. As described above, the network content may request thevisibility state using an API provided by the browser. In a specificexample, the API may provide a document property such asdocument.hidden, which returns a value of true if the visibility stateof the document is hidden. Other API functions may be provided forspecific statuses, such as visible, hidden, prerender, cache, orpreview. API functions may also be provided that test for multiplestates. For example, the document.hidden property may return true if thenetwork content is in any non-visible state. The visibility state mayalso be stored as an entry within a document object model associatedwith the network content.

At action 406, the network content performs visibility state specificprocessing depending upon the current state. The visibility statespecific processing may be any appropriate processing executed inresponse to a particular visibility state, including but not limited tothe following specific examples:

A web page with one or more advertisements may wish to maintain accuratewebsite analytics in a prerendering situation. When the page isdisplayed with a status of prerendering, the page may notify the hostingserver that the page is a prerender, and advertisement impressionsshould not be registered. When the visibility state changes to visible,the page may notify the server indicating that a valid advertisementimpression has been recorded.

A puzzle game may include a timer that keeps track of how long the userhas taken to solve the puzzle. The game may pause the timer when thecontent associated with the game is not in a “visible” state, and startthe timer when the content returns to a visible state.

A web application that hosts dynamic content may poll a hosting serverat a particular interval to detect updates to the dynamic content. Theweb application may pause polling operations when the content is not ina “visible” state to ensure that bandwidth is not wasted. When thecontent returns to a visible state, polling operations may resume.

A streaming video site may not wish to enable playback of an embeddedvideo until the user opens a browser tab containing the site, to avoidbeginning playback of the video before the user is ready to watch.

A communication application or collaborative editing environment mayallow multiple users to interact. When the application or editingenvironment is not visible to the user (e.g., a visibility state otherthan “visible”), the application or editing environment may mark theuser's status as “away” or “unavailable.”

At action 408, the network content may receive a visibility state changeevent, such as described above (see FIG. 3). The network content mayinclude explicit instructions for processing such an event. Variousimplementations may monitor for specific states and/or specific statetransition pairs. In response to the state change event, new statespecific processing may occur at action 406. The method 400 may proceedas long as the execution of the network content continues.

The actions of the illustrated methods are not intended to be limiting.The functionality of the methods can exist in a fewer or greater numberof actions than what is shown and, even with the depicted methods, theparticular order of events may be different from what is shown in thefigures.

The systems and methods described herein advantageously provide aninterface by which network content may determine the current visibilitystate of the network content. Developers may use the visibility stateinformation in a variety of manners to improve the user experience andthe host experience, allowing for accurate website analytics,improvement of the hosting of multimedia content, conservation ofbandwidth, and a variety of other uses.

As these and other variations and combinations of the features discussedabove can be utilized without departing from the disclosure as definedby the claims, the foregoing description of the embodiments should betaken by way of illustration rather than by way of limitation of thedisclosure as defined by the claims. It will also be understood that theprovision of examples of the disclosure (as well as clauses phrased as“such as,” “e.g.”, “including” and the like) should not be interpretedas limiting the disclosure to the specific examples; rather, theexamples are intended to illustrate only some of many possibleembodiments.

1. A computer-implemented method for determining the visibility statusof web content, the method comprising: accessing the web content using aprocessor, the web content comprising executable instructions forperforming at least one function; loading the web content in a browser;monitoring one or more interface features of the browser to determinechanges as presented on a display device in a visibility state of theweb content currently present within a window of the browser, thevisibility state comprising one or more values that indicate whether theweb content is visible to a user, wherein determining the changes aspresented on the display device comprises determining when the window ispartially obscured by a second window; and providing the visibilitystate of the web content to the web content such that the executableinstructions take into account the visibility state during execution. 2.The method of claim 1, further comprising: monitoring the one or moreinterface features to identify a change in visibility state based on achange in the one or more interface features; and sending a notificationto the web content that the visibility state has changed.
 3. The methodof claim 2, wherein the notification comprises at least one of a newvisibility state and a visibility state transitional pair.
 4. The methodof claim 1, further comprising storing the visibility state in adocument object model associated with the web content.
 5. The method ofclaim 1, wherein the visibility state is at least one of visible,hidden, prerender, cache, and preview.
 6. The method of claim 1, whereinthe visibility state is provided to the web content in response to arequest from the web content for the visibility state.
 7. The method ofclaim 1, wherein the visibility state is provided to the web content viaan application programming interface.
 8. (canceled)
 9. A non-transitorycomputer-readable storage medium containing instructions that, whenexecuted by a processor, cause the processor to perform a methodcomprising: accessing web content, the web content comprising executableinstructions for performing at least one function; loading the set ofnetwork content in a browser; monitoring one or more interface featuresof the browser to determine changes as presented on a display device ina visibility state of the web content currently present within a windowof the browser, the visibility state comprising one or more values thatindicate whether the web content is visible to a user, whereindetermining the changes as presented on the display device comprisesdetermining when the window is partially obscured by a second window;and providing the visibility state of the web content to the web contentsuch that the executable instructions take into account the visibilitystate during execution.
 10. The non-transitory computer readable mediumof claim 9, wherein the method further comprises: monitoring the one ormore interface features to identify a change in visibility state basedon a change in the one or more interface features; and sending anotification to the network content that the visibility state haschanged.
 11. The non-transitory computer readable medium of claim 10,wherein the notification comprises at least one of a new visibilitystate and a visibility state transitional pair.
 12. The non-transitorycomputer readable medium of claim 9, wherein the method furthercomprises storing the visibility state in a document object modelassociated with the web content.
 13. The non-transitory computerreadable medium of claim 9, wherein the visibility state is at least oneof visible, hidden, prerender, cache, and preview.
 14. Thenon-transitory computer readable medium of claim 9, wherein thevisibility state is provided to the web content in response to a requestfrom the web content for the visibility state.
 15. The non-transitorycomputer readable medium of claim 9, wherein the visibility state isprovided to the web content via an application programming interface.16. (canceled)
 17. A processing system for determining the visibilitystatus of a set of web content, the processing system comprising: atleast one processor configured to: access web content using a processor,the web content comprising executable instructions for performing atleast one function; load the web content in a browser; monitor one ormore interface features of the browser to determine changes as presentedon a display device in a visibility state of the web content currentlypresent within a window of the browser, wherein the visibility statecomprising one or more values that indicate whether the web content isvisible to a user, wherein determining the changes as presented on thedisplay device comprises determining when the window is partiallyobscured by a second window; and provide the visibility state of the webcontent to the web content such that the executable instructions takeinto account the visibility state during execution.
 18. The processingsystem of claim 17, wherein the processor is further configured to:monitor the one or more interface features to identify a change invisibility state based on a change in the one or more interfacefeatures; and send a notification to the network content that thevisibility state has changed.
 19. The processing system of claim 17,wherein the notification comprises at least one of a new visibilitystate and a visibility state transitional pair.
 20. The processingsystem of claim 17, wherein the processor is further configured to storethe visibility state in a document object model associated with thenetwork content.
 21. The processing system of claim 17, wherein thevisibility state is at least one of visible, hidden, prerender, cache,and preview.
 22. The processing system of claim 17, wherein thevisibility state is provided to the web content in response to a requestfrom the web content for the visibility state.
 23. The processing systemof claim 17, wherein the visibility state is provided to the web contentvia an application programming interface.
 24. (canceled)
 25. The methodof claim 1, wherein determining the changes as presented on the displaydevice further comprises determining whether the window is minimized.26-28. (canceled)